package alto_nivel.gals;

public interface ParserConstants
{
    int START_SYMBOL = 29;

    int FIRST_NON_TERMINAL    = 29;
    int FIRST_SEMANTIC_ACTION = 53;

    int[][] PARSER_TABLE =
    {
        { -1, -1, -1, -1, -1,  0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 27, 27, -1, -1, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, 27, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 29, -1, 29, -1, -1, 28, 28, 28, 28, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 34, 34, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, 34, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, 35, -1, 35, -1, -1, 35, 35, 35, 35, 36, 37, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 38, 38, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, 38, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, 39, -1, 39, -1, -1, 39, 39, 39, 39, 39, 39, 40, 41, -1, -1, -1 },
        { -1, 42, 43, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, 46, -1, -1, -1, -1, -1 },
        { -1,  2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1,  3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1,  4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 15, -1, -1, -1, -1, 15, -1, 15, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 17, -1, -1, -1, -1, 17, -1, 17, 17, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 18, -1, -1, -1, -1, 19, -1, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, -1 },
        { -1, -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  5,  6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1,  7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  8, -1, -1, -1,  9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10 },
        { -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }
    };

    int[][] PRODUCTIONS = 
    {
        {  6, 11,  5, 77, 50, 28, 48, 12, 13, 38, 76, 14, 13, 41, 14, 66 },
        {  0 },
        { 39 },
        { 40, 54, 15 },
        {  2, 55, 17,  3, 60, 47 },
        {  0 },
        { 16, 40 },
        {  2, 75, 49 },
        {  0 },
        { 16, 48 },
        {  0 },
        { 13, 51, 14 },
        {  2, 78, 52 },
        {  0 },
        { 16, 51 },
        { 43, 42 },
        {  0 },
        { 43, 42 },
        {  2, 55, 44 },
        { 45, 59 },
        { 46 },
        { 10, 15, 74 },
        { 26, 15, 56 },
        { 27, 15, 57 },
        { 17, 30, 58, 15 },
        {  7, 30, 61, 13, 41, 14,  8, 62, 13, 41, 14 },
        { 72,  9, 13, 41, 14, 73 },
        { 32, 31 },
        { 34, 63, 32, 64 },
        {  0 },
        { 18 },
        { 19 },
        { 20 },
        { 21 },
        { 35, 33 },
        {  0 },
        { 22, 35, 65, 33 },
        { 23, 35, 67, 33 },
        { 37, 36 },
        {  0 },
        { 24, 37, 68, 36 },
        { 25, 37, 69, 36 },
        {  2, 70 },
        {  3, 71 },
        { 11, 30, 12 },
        { 22, 37 },
        { 23, 37 }
    };

    String[] PARSER_ERROR =
    {
        "",
        "Era esperado fim de programa",
        "Era esperado identificador",
        "Era esperado constante_inteira",
        "Era esperado palavra_reservada",
        "Era esperado nome de programa",
        "Era esperado run",
        "Era esperado if",
        "Era esperado else",
        "Era esperado loop",
        "Era esperado break",
        "Era esperado \"(\"",
        "Era esperado \")\"",
        "Era esperado \"[\"",
        "Era esperado \"]\"",
        "Era esperado \".\"",
        "Era esperado \",\"",
        "Era esperado \"=\"",
        "Era esperado \"==\"",
        "Era esperado \"!=\"",
        "Era esperado \"<\"",
        "Era esperado \"<=\"",
        "Era esperado \"+\"",
        "Era esperado \"-\"",
        "Era esperado \"*\"",
        "Era esperado \"/\"",
        "Era esperado \"++\"",
        "Era esperado \"--\"",
        "Era esperado \"->\"",
        "Era esperado run",
        "Era esperado expressão",
        "Era esperado <, <=",
        "Era esperado identificador ou constante inteira",
        "Era esperado identificador ou constante inteira",
        "Era esperado <, <=",
        "Era esperado identificador ou constante inteira",
        "Era esperado identificador ou constante inteira",
        "Era esperado identificador ou constante inteira",
        "Era esperado identificador",
        "Era esperado identificador",
        "Era esperado identificador",
        "Era esperado comando",
        "Era esperado comando",
        "Era esperado comando",
        "Era esperado comando",
        "Era esperado comando de teste",
        "Era esperado comando de loop",
        "Era esperado identificador",
        "Era esperado identificador",
        "Era esperado identificador",
        "Era esperado identificador",
        "Era esperado identificador",
        "Era esperado identificador",
    };
}
